package cn.wolfcode.wolf2w.util;

import cn.wolfcode.wolf2w.exception.LogicException;
import org.springframework.lang.Nullable;
import org.springframework.util.StringUtils;

/**
 * 参数判断(断言)的工具类
 */
public abstract class AssertUtil {
    /**
     * 参数判空工具方法
     * @param param 参数
     * @param message 错误信息
     */
    public static void hasLength(@Nullable String param, String message) {
        if (!StringUtils.hasLength(param)) {
            throw new LogicException(message);
        }
    }

    /**
     * 判断两个参数是否相等(String类型)
     * @param param1 参数1
     * @param param2 参数1
     * @param message 错误信息
     */
    public static void isEquals(@Nullable String param1, String param2, String message) {
        if (param1 == null || param2 == null){
            throw new LogicException(message);
        }
        if (!param1.equalsIgnoreCase(param2)){
            throw new LogicException(message);
        }
    }

    public static void notEquals(@Nullable String param1, String param2, String message) {
        if (param1 == null || param2 == null){
            throw new LogicException("参数异常");
        }
        if (param1.equalsIgnoreCase(param2)){
            throw new LogicException(message);
        }
    }

    /**
     * 判断对象是否为空
     * @param t
     * @param message
     * @param <T>
     */
    public static <T> void ObjectIsNull(T t, String message) {
        if (t == null){
            throw new LogicException(message);
        }

    }
}
